﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;

namespace Web_Blog.Controler
{
    public class Like
    {
        //Load like lên
        public static string LoadLike(string liked)
        {
            //Trả về chuỗi để gắn vào span
            string[] likedarr = liked.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string returnlike = "";

            ConnectDB.ConnectDB DB = new ConnectDB.ConnectDB();
            SqlConnection conn = DB.LayKetNoi();
            conn.Open();

            for (int i = 0; i < likedarr.Length; i++)
            {
                SqlCommand command2 = new SqlCommand("procLayUser", conn);
                command2.CommandType = CommandType.StoredProcedure;
                command2.Parameters.Add(new SqlParameter("@uID", likedarr[i]));
                SqlDataReader reader2 = null;
                reader2 = command2.ExecuteReader();
                if (reader2.Read())
                {
                    returnlike += "<a href='TrangChu.aspx?u=";
                    returnlike+=reader2["uID"].ToString();   //Đường dẫn tới user thay đổi ở đây
                    returnlike+="'>";
                    returnlike+=reader2["name"].ToString();     //Tên của người like (thay đổi ở đây nếu muốn hiển thị nick
                    returnlike += "</a>&nbsp;&nbsp;";           //Phân cách giữa các người like thay đổi dòng này
                }
                reader2.Close();
            }
            conn.Close();
            if (returnlike != "") returnlike = "- " + returnlike+ "liked!";
            return returnlike;
        }

        //Khi nhấn like
        public static int DoLike(Object.DoLikeObject lk)
        {
            ConnectDB.ConnectDB DB = new ConnectDB.ConnectDB();
            SqlConnection conn = DB.LayKetNoi();
            conn.Open();

            Object.Load1PostObject post = Controler.POST.Load(lk.PID);
            string liked = post.Liked;

            liked += ";" + lk.UID+";";

            SqlCommand command = new SqlCommand("procLike", conn);
            command.CommandType = CommandType.StoredProcedure;

            command.Parameters.Add(new SqlParameter("@liked", liked));
            command.Parameters.Add(new SqlParameter("@pID", lk.PID));

            int returnvalue=command.ExecuteNonQuery();

            conn.Close();

            //Thêm thông báo
            Object.NotifyObject n = new Object.NotifyObject();
            n.Srcuid = lk.UID;
            n.Pid = lk.PID;
            n.Type = 1;     //Type = 1 là like
            Controler.Notification.AddNotification(n);

            return returnvalue;
        }

        //Khi nhấn unlike
        public static int DoUnLike(Object.DoLikeObject lk)
        {
            ConnectDB.ConnectDB DB = new ConnectDB.ConnectDB();
            SqlConnection conn = DB.LayKetNoi();
            conn.Open();

            Object.Load1PostObject post = Controler.POST.Load(lk.PID);
            string liked = post.Liked;

            liked = liked.Replace(";" + lk.UID + ";", "");

            SqlCommand command = new SqlCommand("procLike", conn);
            command.CommandType = CommandType.StoredProcedure;

            command.Parameters.Add(new SqlParameter("@liked", liked));
            command.Parameters.Add(new SqlParameter("@pID", lk.PID));

            int returnvalue = command.ExecuteNonQuery();

            conn.Close();
            return returnvalue;
        }
    }
}